package cn.tedu.truetaste.service;

import cn.tedu.truetaste.pojo.dto.ShopAddNewDTO;
import cn.tedu.truetaste.pojo.dto.ShopUpdateDTO;
import cn.tedu.truetaste.pojo.entity.Shop;
import cn.tedu.truetaste.pojo.vo.ShopStandardVO;
import cn.tedu.truetaste.restful.JsonPage;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 * 购物车数据表 服务类
 * </p>
 *
 * @author tedu.cn
 * @since 2022-02-16
 */

@Transactional
public interface IShopService {
    /**
     * 新增购物车
     * @param shopAddNewDTO
     */
    void addShop(ShopAddNewDTO shopAddNewDTO);

    /**
     * 查询我的购物车
     * @param page
     * @param pageSize
     * @return
     */
    JsonPage<ShopStandardVO> listShops(Integer page, Integer pageSize);

    /**
     * 根据用户id查询购物车详情
     *
     * @param userId 用户id
     * @return 匹配的用户详情，如果没有匹配的数据，将抛出异常
     */
    ShopStandardVO getStandardByUserId(Long userId);

    /**
     * 批量删除购物车
     * @param ids
     */
    void removeShop(Long[] ids);

    /**
     * 清空购物车
     */
    void removeAllShops();

    /**
     *TODO 可以和removeAllShops合并
     * @param shop
     */
    void removeUserShops(Shop shop);
    /**
     * 更新购物车菜品数量
     * @param shopUpdateDTO
     */
    void updateNum(ShopUpdateDTO shopUpdateDTO);


}
